Test Classes এবং Test Methods Apex কোডের কার্যকারিতা যাচাই করতে ব্যবহৃত হয়। Salesforce-এ ইউনিট টেস্টিংয়ের জন্য Test Classes এবং Test Methods তৈরি করা হয়, যা কোডের সঠিকতা এবং গভর্নর লিমিটের মধ্যে থেকে কোডের কার্যকারিতা নিশ্চিত করে।
Test Class তৈরি করতে @isTest অ্যানোটেশন ব্যবহার করা হয়, যা Salesforce-কে নির্দেশ করে এটি একটি টেস্ট ক্লাস। Test Class সাধারণত public
বা global
হিসাবে ডিফাইন করা হয়।
@isTest
public class TestClassName {
// Test methods go here
}
public
বা global
হিসেবে ডিফাইন করা হয়।Test Methods টেস্ট ক্লাসের মধ্যে ডিফাইন করা হয় এবং @isTest বা testMethod ব্যবহার করা হয়। Test Method-এ Assertions ব্যবহার করে কাঙ্খিত ফলাফল যাচাই করা হয়।
@isTest
public class TestClassName {
@isTest
static void testMethod1() {
// টেস্ট কোড এবং Assertions
}
}
Test Methods সাধারণত টেস্টিংয়ের জন্য নিজস্ব ডেটা তৈরি করে, যা Production ডেটা ব্যবহার এড়াতে সাহায্য করে। Apex টেস্ট ক্লাসে তৈরি ডেটা মূল ডেটাবেসে জমা হয় না এবং তা সম্পূর্ণ আলাদা থাকে।
@isTest
public class AccountTest {
@isTest
static void testAccountCreation() {
// টেস্ট ডেটা তৈরি
Account acc = new Account(Name = 'Test Account');
insert acc;
// Assertions
Account fetchedAcc = [SELECT Name FROM Account WHERE Id = :acc.Id];
System.assertEquals('Test Account', fetchedAcc.Name, 'Account name should match');
}
}
Account
রেকর্ড তৈরি করা হয়েছে, যা Test Database-এ সংরক্ষিত হয়।Test.startTest() এবং Test.stopTest() Salesforce-এ গভর্নর লিমিট রিফ্রেশ করে এবং Asynchronous প্রসেস ট্রিগার করার জন্য ব্যবহৃত হয়।
@isTest
public class AsyncTestExample {
@isTest
static void testFutureMethod() {
Test.startTest();
FutureExample.processFuture(); // Future Method কল
Test.stopTest();
// Assertions
System.assert(true, 'Future method executed successfully');
}
}
Assertions টেস্ট রেজাল্ট যাচাই করতে ব্যবহৃত হয়, যা System.assertEquals()
, System.assertNotEquals()
এবং System.assert()
মেথড ব্যবহার করে ফলাফল যাচাই করে। Assertions কোডের প্রত্যাশিত আউটপুট এবং আসল আউটপুটের মধ্যে মিল চেক করে।
@isTest
public class AccountTest {
@isTest
static void testAccountName() {
Account acc = new Account(Name = 'Sample Account');
insert acc;
Account fetchedAcc = [SELECT Name FROM Account WHERE Id = :acc.Id];
System.assertEquals('Sample Account', fetchedAcc.Name, 'The account name should match');
}
}
নিচে একটি Test Class এবং Test Method-এর পূর্ণ উদাহরণ দেয়া হলো:
public class AccountManager {
public static void updateAccountIndustry(List<Id> accountIds) {
List<Account> accounts = [SELECT Id, Industry FROM Account WHERE Id IN :accountIds];
for (Account acc : accounts) {
acc.Industry = 'Technology';
}
update accounts;
}
}
@isTest
public class AccountManagerTest {
@isTest
static void testUpdateAccountIndustry() {
// Test data creation
Account acc = new Account(Name = 'Test Account');
insert acc;
// Method call and testing
List<Id> accountIds = new List<Id>{acc.Id};
AccountManager.updateAccountIndustry(accountIds);
// Record refresh and validation
Account updatedAcc = [SELECT Industry FROM Account WHERE Id = :acc.Id];
System.assertEquals('Technology', updatedAcc.Industry, 'Industry field should be updated to Technology');
}
}
Test Classes এবং Test Methods Apex ইউনিট টেস্টিংয়ের প্রধান উপাদান, যা কোডের সঠিকতা যাচাই করে এবং গভর্নর লিমিটের মধ্যে কোডের কার্যকারিতা নিশ্চিত করে। Assertions, Test.startTest(), এবং Test.stopTest() সহ বিভিন্ন টুল ব্যবহার করে Test Classes এবং Test Methods উন্নত এবং কার্যকরী করা যায়, যা Salesforce ডেভেলপমেন্টে একটি নির্ভুল এবং স্থিতিশীল পরিবেশ নিশ্চিত করে।
common.read_more